nginx proxy
URI に応じてバックエンドサーバの振り分けを変更する
code:conf
server {
listen 80 default_server;
listen :::80 default_server; server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location /team01 {
rewrite ^/(.+) $1 break;
}
location /team02 {
rewrite ^/(.+) $1 break;
}
リバースプロキシ
nginx を経由してバックエンド( Apache 等)が処理
注意
Apache のアクセスログを見るとアクセス元が 127.0.0.1 になっている
nginx の設定に X-Real-IP を HTTP ヘッダに追加する設定が必要
mod_rpaf はプロキシサーバーが追加した X-Real-IP ヘッダをアクセス元として扱うモジュール
mod_rpaf は 127.0.0.1 からのアクセスだけに対して処理をするのでもし、リバースプロキシが他のホストにあるのであれば /etc/apache2/mods-enabled/rpaf.conf の RPAFproxy_ips をリバースプロキシサーバーのIPアドレスに変更する
リバースプロキシ設定 1
code:conf
server {
location / {
// リクエストボディのバッファリングに関する設定
client_max_body_size 8m;
client_body_buffer_size 16k;
client_body_temp_path /dev/shm/nginx_client_body_temp;
// アップストリームサーバからのレスポンスのバッファリングに関する設定
proxy_buffering on;
proxy_buffer_size 8k;
proxy_buffers 64 8k;
proxy_max_temp_file_size 1024m;
proxy_temp_path /dev/shm/nginx_client_body_temp;
// タイムアウトに関する設定
proxy_connect_timeout 5s;
proxy_send_timeout 10s;
proxy_read_timeout 10s;
// アップストリームへ
// ソケット経由
}
}
リバースプロキシ設定 2
code:conf
upstream backend {
server 127.0.0.1:8080;
}
server {
listen 80;
server_name _;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
table:設定値
proxy_buffering on;
proxy_buffer_size 8k; デフォルト値は getconf PAGE_SIZE のページサイズ
proxy_buffers 64 8k;